package com.uncp.comisiondeadmision.fabricas;

import com.uncp.comisiondeadmision.carnet.dao.CarnetDAO;
import com.uncp.comisiondeadmision.carnet.dao.PostulanteCarnetDAO;
import com.uncp.comisiondeadmision.comprobantedepago.dao.CarreraDAO;
import com.uncp.comisiondeadmision.comprobantedepago.dao.CombosDAO;
import com.uncp.comisiondeadmision.comprobantedepago.dao.ComprobanteDAO;
import com.uncp.comisiondeadmision.comprobantedepago.dao.EscuelaDAO;
import com.uncp.comisiondeadmision.comprobantedepago.dao.FacultadDAO;
import com.uncp.comisiondeadmision.comprobantedepago.dao.HistorialIgvDAO;
import com.uncp.comisiondeadmision.comprobantedepago.dao.ModalidadDAO;
import com.uncp.comisiondeadmision.comprobantedepago.dao.PostulanteDAO;
import com.uncp.comisiondeadmision.evaluacion.dao.DetalleSolicitudDAO;
import com.uncp.comisiondeadmision.evaluacion.dao.SolicitudInscripcionDAO;
import com.uncp.comisiondeadmision.seguridad.dao.UsuarioSistemaDAO;

public abstract class DAOFactory {

	public static final int MYSQL = 1;
	public static final int ORACLE = 2;

	// registro de daos
	public abstract PostulanteDAO getPostulante();

	public abstract UsuarioSistemaDAO getUsuarioSistema();

	public abstract CarnetDAO getCarnet();

	public abstract DetalleSolicitudDAO getDetalleSolictud();

	public abstract SolicitudInscripcionDAO getSolicitudInscripcion();

	public abstract PostulanteCarnetDAO getPostulanteCarnet();

	public abstract ComprobanteDAO getComprobante();

	public abstract CombosDAO getCombos();

	public abstract CarreraDAO getCarrera();

	public abstract ModalidadDAO getModalidad();

	public abstract HistorialIgvDAO getIgv();

	public abstract FacultadDAO getFacultad();

	public abstract EscuelaDAO getEscuela();
	
	
	// //

	public static DAOFactory getSubFabrica(int bd) {
		switch (bd) {
		case MYSQL:
			return new SubFabricaMySql();
		case ORACLE:
			return null;
		}
		return null;
	}

}
